Method and apparatus for sharing content

ABSTRACT

A method includes supplying a video stream to a primary display device, detecting an information request associated with the video stream, identifying a portion of the video stream corresponding to the time of detecting, supplying to a secondary display device choices corresponding to the information request, receiving selected choices and supplying to the secondary display device information corresponding to the selected choices.

CROSS-REFERENCES TO RELATED INVENTIONS

This application is a continuation-in-part of U.S. Ser. No. 13/431,932, filed Mar. 27, 2012.

FIELD OF THE INVENTION

The invention generally relates to managing content, and more particularly relates to searching for content in a streaming media environment.

BACKGROUND

Consumers have an increasing amount of on-demand media content available to them. For example, on-demand media content includes visual content (e.g., movies, television shows, still images), audio content (e.g., music), and software applications (e.g., games).

Along with an increasing amount of on-demand content available, it becomes more challenging for the consumer to find and select their content of interest. Some consumers find their content through browsing through movies through genre categories while others find their content through searches for titles, directors, or actors.

Consumers also have an increasing number of choices on where to buy, rent, or consume this content without cost. With the increase of available content and content provider choices, it becomes more challenging for the consumer to find the right content from the right content provider. For example, some content is available free for paid subscribed users; other content is available without charge and without a subscription; and yet other content is available for rent or purchase on an individual basis.

SUMMARY

A method includes supplying a video stream to a primary display device, detecting an information request associated with the video stream, identifying a portion of the video stream corresponding to the time of detecting, supplying to a secondary display device choices corresponding to the information request, receiving selected choices and supplying to the secondary display device information corresponding to the selected choices.

BRIEF DESCRIPTION OF THE DRAWINGS

The following figures depict various embodiments for illustrative purposes. From the figures and corresponding description, different embodiments may be employed without departing from the invention as described herein.

FIGS. 1-4 illustrate block diagrams showing an exemplary system according to one embodiment of the invention;

FIGS. 5A-7B illustrate exemplary screen shots according to embodiments of the invention; and

FIGS. 8A-16 illustrate flow diagrams according to embodiments of the invention.

FIG. 17 illustrates content augmentation operations performed in accordance with an embodiment of the invention.

DETAILED DESCRIPTION

FIG. 1 illustrates a block diagram according to one embodiment of a streaming environment 100. In particular, the streaming environment 100 includes an interface system 110, a platform server 120, and one or more sources of content programming 135. In one embodiment, the interface system 110 includes a display device 140 (e.g. monitor and television), a client device 150 (e.g. streaming player), and a user input device 170. The client device 150 is configured to communicate with the display device 140 and a network 160.

In one embodiment, the platform server 120 includes a database 125 and a platform module 130. The database 125 is configured to store data such as programming software packages. The data within these programming software packages include: the network locations and content descriptions of content sources 135, hardware/software capabilities of different firmware versions and specifications of the client device 150, customer data associated with each client device 150, and user interface information associated with the client device 150.

In one embodiment, the customer data includes customer specific information such as demographic data, geographic data, ISP identification, and financial information. In one embodiment, the platform server 120 generates customized user interfaces for each of the client devices 150. In one embodiment, the user interface from the platform server 120 provides a selection of content such as audio, visual, and gaming content to the client device 150. In this example, the platform server 120 is configured to supply a graphical representation of the selection content to the client device 150 and further allows the client device 150 to select and access individual content from the selected content from the content source 135 through this graphical representation of the selection content.

In one embodiment, the platform server 120 is configured to receive input from client device 150 and processes the input through the platform module 130. The input from the client device 150 includes navigation and selection commands which may represent selection of content, search for content, and ongoing interaction with an application running on the platform server 120.

In one embodiment, the client device 150 displays content on display device 140. In one embodiment, the content displayed on the display device is sourced from one of the client device 150, the platform server 120, and the content source 135. In one embodiment, the input device 170 transmits signals to the client device 150. In one embodiment, the input device 170 utilizes one of or a combination of: an infrared signal, radio frequency signal, and Bluetooth signal to communicate with the client device 150.

The input device 170 is configured to enter data and to make user selections from the interface as presented through the client device 150. In one embodiment, the interface displayed by the client device 150 may be from the platform server 120, from the content sources 135, or be locally generated by the client device 150. In one embodiment, the input device 170 also includes a display to show additional content. In another embodiment, the input device 170 includes a touch screen which allows content to be displayed and input to be received. Exemplary input devices 170 include remote controls, smart phones, tablets, and mobile computers. In one embodiment, a secondary display (not shown) is coupled to the network 160 and the client device 150. For example, the secondary display 175 may be a tablet, laptop, computer or Smartphone. In one embodiment, the secondary display is configured to receive data and transmit data to the client device 150 and the network 160.

In one embodiment, the content sources 135 include a server 180 and a storage device with content 190. In one embodiment, the network address of particular content stored within the storage device 190 is maintained within the platform server 120. In another embodiment, the general location of the content source 135 is maintained and stored within the platform server 120 while the specific locations of corresponding content are managed locally by the content source 135. In yet another embodiment, the location of the content source 135 is embedded within the graphical representation displayed through the client device 150 such that interaction with the graphical representation through the client device 150 allows the content located within the content source 135 to be accessible to the client device 150.

In one embodiment, the content stored within the storage device 190 includes music, video, still pictures, text, graphics, gaming applications, and the like. In one embodiment, the particular content which is stored within the storage device 190 is provided to the client device 150 through the network 160. In one embodiment, the network 160 is the Internet. In another embodiment, the network 160 is a local area network.

In one embodiment, the client device 150 makes a request for specific content. If the requested content is video content, the storage device 190 transmits video data that represents the specific video content to the client device 150 through the content source 135.

In one embodiment, platform server 120 supports interfaces, such as login interfaces, search interfaces, and customized interfaces for the client device 150.

FIG. 2 illustrates a representative platform module 130 as shown in FIG. 1. In one embodiment, the platform module 130 includes an authentication module 205, a search/browse module 210, a match module 215, a store module 220, a tag module 225, a display module 230, a recommendation module 235, and a channel store module 240.

The authentication module 205 interacts with the client device 150 and authenticates a profile or user account associated with the particular client device 150. For example, the profile includes data associated with a user such as the user name, password, device associations, IP addresses, location, email address, payment information, and content subscriptions. In one embodiment, the authentication module 205 recognizes and authenticates the client device associated with a particular user account through password authentication, location authentication, visual authentication, or audio authentication. The authentication can be configured to occur when setting up a new client device 150, purchasing content or subscriptions, or periodically as needed.

The search/browse module 210 is configured to detect input from a client device 150 and/or the input device 170. In one embodiment, the input represents the selection of a channel, content, or application. In another embodiment, the input represents a textual, visual, or audible search for content, a channel, or application. In yet another embodiment, the input represents browsing content, channels, or applications.

The match module 215 coordinates searches and requests for content, channels, and applications. For example, the match module 215 identifies relevant content, channels, and applications based upon the search criteria. In one embodiment, the match module 215 relies on titles, tags, description and reviews associated with the content, channels and applications to determine relevance of the match.

The store module 220 coordinates the storage of data within the platform server 120. The data coordinated by the store module 220 includes content listings and corresponding descriptions, user profiles, searching and browsing requests, content viewed, channels and applications utilized, and tags, and friends. Depending on the nature of the data, access to the content is controlled to prevent unauthorized use.

The tag module 225 coordinates the creation and use of tags associated with content, channels, and applications. Tags can be assigned to channels and applications by the author of the channels and applications or by users through the client device 150. Tags can also be assigned to portions of audio and video streams by the author of the audio and video streams or by users through the client device 150. The tags may describe the corresponding content or allow an opportunity for a user to provide commentary associated with the corresponding content. The tags can be used for personal use and be searched by the user creating the tags or the tags can be aggregated among multiple users and searched through a public database by others.

The display module 230 coordinates display of representative content and user interfaces from the platform server 120 to each of the client devices 150. Examples of representative content include listings and descriptions of channels, content, and applications. Further, the user interface is configured to allow searching and browsing for channels, contents, and applications.

The recommendation module 235 is configured to process content recommendations based on a combination of current subscriptions, browsing or searching input, and content source. Further, the recommendation module 235 also can utilize tags to provide recommendations. In another embodiment, the recommendation module 235 utilizes the availability of the content to provide a recommendation. For example, a viewing window which describes when the content is available for viewing describes a beginning and end date for the availability of the content. Further, the recommendation module 235 can utilize the subscription data associated with each user account to determine whether the content is available to the user without additional charge because the account user is already subscribed to the content provider. Further, the recommendation module 235 can prioritize content that is available free of charge without any subscriptions. In another embodiment, the recommendation module 235 can prioritize content based on popularity ratings as illustrated under the public viewing data 335.

The channel store module 240 is configured to manage subscriptions of channels associated with each client device 150. Channels often contain content such as video content and audio content. In one embodiment, access to the content within a channel requires a subscription to that channel and the subscription is free. In another embodiment, access to the content within a channel requires a paid subscription. In yet another embodiment, access to some content and applications require payment and a subscription. In one embodiment, the channel store module 240 manages the addition of channels, content, and applications. Similarly, the channel store module 240 also manages deletion or modifications to channels, content, and application.

FIG. 3 illustrates a representative platform database 125 as shown in FIG. 1. In one embodiment, the platform database 125 includes private data and public data. The private data contains information which is identifiable with a particular user; the public data contains information that is aggregated and not identifiable with a particular user. The private data within the platform database 125 includes user profile data 305, user viewing data 310, user subscription data 315, user tagging data 320, user connection data 325, and user device data 330. The public data within the platform database 125 includes public viewing data 335, public tagging data 340, and content listing data 345.

In one embodiment, utilization of the private data is restricted to access within the platform server 120 and access by the particular user corresponding to the private data. Utilization of the public data can be accessed by all users and selected third parties.

The user profile data 305 includes information such as a user's name, address, credit card/payment information, age, and gender. The user viewing data 310 includes the channels, audio content, visual content, video content, and applications utilized through a client device 150. In one embodiment, the user viewing data 310 allows a client device 150 that is associated with the particular user to view recently watched channels and content as well as determine which applications were recently used. Further, the user viewing data 310 also includes stored searches that are performed through devices associated with this user account. In one embodiment, the stored searches are initiated by explicitly searching for content through a text based, image based, or voice based search. In another embodiment, the stored searches are implicitly identified by recording browsing choices. One such browsing choice is shown and described by FIGS. 5A and 5B.

The user subscription data 315 includes information such as channels subscribed by a particular user and content and applications purchased by the particular user. The user tagging data 320 includes tagging information related to a particular user. For example, the tagging information can include a user's comment or description of a channel, application or content. In one embodiment, the entire content is tagged with a description as determined by the particular user. In another embodiment, a portion of the content is tagged with a description of that portion of the content by the particular user. The user connection data 325 includes a listing of other users that are associated with the particular user as a friend. In one embodiment, having users connected to each other as friends allows a particular user to share recently watched content, channel subscriptions, user tags, and applications with other connected users. The user device data 330 includes a listing of devices associated with the particular user. The device includes a client device 150, an input device 170, a mobile device such as a tablet, laptop computer, or smart phone.

The public viewing data 335 includes a listing of channels, content, and applications utilized by many users. In one embodiment, the popularity of the content is ranked based on the number of viewers and the order in which the content is viewed. For example, the higher number of views per day for content would indicate higher popularity. Further, when multiple content entities are presented next to each other, the content entity which is selected first for viewing is given a higher popularity rating.

The public tagging data 340 includes tags that are utilized to describe channels, content, and applications from many users. In one embodiment, the tagging data within the public tagging data 340 comes from content providers. For example, a movie studio responsible for producing a movie could provide tagging data to the public tagging data 340 that describes portions of the movie. The public tagging data also includes closed captioning and subtitles associated with respective segments of the content.

The content listings data 345 includes listings of content and descriptions of the corresponding content. In one embodiment, the descriptions include key word tagging throughout the content, a summary description of the content, directors and actors associated with the content, and third party reviews associated with the content.

FIG. 4 illustrates a block diagram of a representative client device 150 as shown in FIG. 1. In one embodiment, the client device 150 is configured to stream content into the device. The content streamed into the client device 150 includes audio content, visual content, and applications. In one embodiment, the client device 150 is utilized to transmit instructions and selection to the content server 135 and/or the platform server 120.

In one embodiment, the client device includes a processor 410, internal memory 420, external storage 430, multipurpose I/O port 440, input device interface 450, power management 460, audio/visual I/O interface 470, and network interface 480.

In one embodiment, the processor 410 utilizes a central processing unit (CPU). In another embodiment, the processor 410 also utilizes a graphics processing unit (GPU) which may be integrated with the CPU or be configured to be physically separate. In one embodiment, the internal memory 420 includes one of or a combination of random access memory (RAM), flash memory, and read only memory (ROM). Additional memory and memory interfaces such as the multi-purpose I/O port 440 may be provided in various embodiments, to support memories such as the external storage 430 which can include hard disks, Universal Serial Bus (USB) drives, Secure Digital (SD) cards, and the like. These memories may also be used for storage of applications, programs, buffered media, media, executable computer code, and software keys.

In one embodiment, the input device interface 450 enables an input device to interface with the client device 150. In one embodiment, the input device interface 450 is configured to communicate with the input device through a wireless interface such as Bluetooth (BT), radio frequency (RF), and infrared (IR). In one embodiment, the input device interface 450 supports the functionality through an input device including any combination of virtual buttons embodied on a customization screen, physical buttons, accelerometer, gyroscope, pressure sensor, tilt sensor, magnetic sensor, microphone, and light sensor.

In one embodiment, the I/O interface 470 supports multiple video output options such as High Definition Multimedia Interface (HDMI), Red-Green-Blue (RGB) component video, Separate Video (S-video), Digital Visual Interface (DVI), Video Graphics Array (VGA), Mobile High-Definition Link (MHL), and composite video. In one embodiment, USB and Apple® Thunderbolt® enabled displays are also supported.

In one embodiment, the network interface 480 supports multiple network interfaces such as Ethernet, Wi-Fi, and Bluetooth. In another embodiment, the network interface 480 also supports coaxial, digital TV antenna, and satellite television.

FIGS. 5A, 5B, 5C, 5D, 6, 7A, and 7B, illustrate screen shots showing exemplary embodiments for use with the streaming environment 110 and the platform server 120 as shown in FIG. 1. The representations within the screen shots are shown only for illustrative purposes. For example, contents within the screen shots may be omitted or added without limiting the scope of the claims.

FIG. 5A illustrates an exemplary screen shot 500 depicting a user interface for browsing for content through a client device 150. In one embodiment, the screen shot 500 is an exemplary home screen configured to browse for content through the client device 150 and transmitted from the platform server 120. The screen shot 500 includes category listings 502, 512, and 523; content listings 504, 506, 508, 510, 514, 516, 520, and 522; thumbnail displays 505, 507, 509, 515, 517, and 521; and indicators 510, 518, and 525.

In one embodiment, the category listings 502 and 512 represent categories for content such as movies, television shows, and games. In another embodiment, the category listings 502 and 512 represent a sub-category such as different types or genre of movies.

In one embodiment, the category listing 523 represents a row of content dedicated to a particular content provider. The particular content provider can populate this row of content with content chosen by the content provider. In one embodiment, the particular content provider is selected based on the subscriptions associated with the user account. For example, the particular content provider is selected, because the user account is subscribed to the particular content provider. In this example, the content within the category listing 523 that is provided by the particular content provider is accessible. In another example, the particular content provider is not currently subscribed to by the user account. In this example, the content provided by the particular content provider is available on a limited access. In one embodiment, the limited access includes: allowing full access while the content is listed within the category listing 523; and allowing access to a portion of the content as a preview. Further, the particular content provider could solicit a subscription for the user account prior to, during, or after allowing access to the content.

In one embodiment, the categories listings 502, 512, and 523 can be selectively pinned to the screen shot 500. Further, the categories listings 502, 512, and 523 are dynamically presented within the screen shot 500 depending on the browsing and selection habits. For example, if the content associated with the category listing 502 is not browsed or viewed over a period of time or selections, then the category listing 502 is moved towards the bottom of the screen such as below the category listing 512. In another example, any of the categories listings 502, 512, and 523 can also be prioritized based on paid placement by a content provider. For example, the category listing 512 can represent a sponsored content provider for listing content from the sponsored content provider that is associated with the category listing 512.

In one embodiment, each of the content listings 504, 506, 508, 510, 514, 516, 520, and 522 represents separate content. For example, if the category listing 502 is for comedy movies, then the content listings 504, 506, and 508 would represent movies that are also comedies.

In one embodiment, the thumbnail displays 505, 507, 509, 515, 517, and 521 show an image preview of the respective content associated with the content listings 504, 506, 508, 510, 514, 516, 520, and 522, respectively. In another embodiment, the thumbnail displays 505, 507, 509, 515, 517, and 521 show an animated series of preview images such as a video clip that is representative of the associated content.

In one embodiment, the indicators 510 and 518 represent content that is available to the client device 150. For example, the content listings 508 and 516 are available to the client device 150 as indicated by the indicators 510 and 518, respectively. In one embodiment, the content associated with the content listings 508 and 516 are available through a subscribed channel associated with a particular user account. In one embodiment, the subscribed channel does not requirement payment. In another embodiment, the subscribed channel is a paid subscription. In one embodiment, the remaining content listings 504, 506, 510, 514, 520, and 522 are available to a particular user by subscribing to the appropriate channel or purchasing the content.

In one embodiment, the content listings 504, 506, 508, 510, 514, 516, 520, and 522 are found through the content listings data 345 within the platform database 125. For example, the content listings 504, 506, 508, 510, 514, 516, 520, and 522 is responsive to a key word search inquiry. In another embodiment, the content listings 504, 506, 508, 510, 514, 516, 520, and 522 are found through a home screen which is personalized by the user and associated with the user viewing data 310 associated with a particular user.

In one embodiment, a selection frame 525 is shown to surround the content listing 520. The selection frame 525 represents a selection, hovering, or highlighting of particular content within the screen 500. In one embodiment, an information box 526 corresponds with the content listing 520 and is activated by the selection from 525. The information box 526 and corresponding information 527 provides additional information about the content listing 520. The information box 526 and corresponding information 527 are selectively displayed based on the selection, hovering, highlighting of the content listing 520 which is shown by the selection frame 525.

FIG. 5B illustrates an exemplary screen shot 530 depicting a user interface for browsing for content through a client device 150. In one embodiment, the screen shot is an exemplary home screen configured to browse for content through the client device 150 and is transmitted from the platform server 120. The screen shot 530 includes content listings 532, 534, 536, 538, 540, 542, 544, and 546. In one embodiment, each of the content listings 532, 534, 536, 538, 540, 542, 544, and 546 represents a separate content listing. In another embodiment, each of the content listings 532, 534, 536, 538, 540, 542, 544, and 546 represents a separate channel that distributes content. In another embodiment, each of the content listings 532, 534, 536, 538, 540, 542, 544, and 546 represents a separate software application. In another embodiment, each of the content listings 532, 534, 536, 538, 540, 542, 544, and 546 represents a separate genre.

In one embodiment, the content listings 532, 534, 536, 538, 540, 542, 544, and 546 are graphically displayed and each of the content listings 532, 534, 536, 538, 540, 542, 544, and 546 is configured to be selected through a user of the client device 150.

In one embodiment, the content listings 533, 534, 536, and 538 represent content directly related to each other such as several related television series, different episodes that are part of a television series, and a movie and its related sequels. In this embodiment, the content listings 540 and 546 are related to the content listing 532 by being in the same genre. In this instance, if the content listing 532 is an action/adventure program, then the content listings 540 and 546 should be another action/adventure program. In this embodiment, the content listings 542 and 544 are in a different genre from the content listing 532 and each other. In this instance since the content listing 532 is an action/adventure program, the content listing 542 is a comedy program; the content listing 544 is a horror program.

In use, the content listings 532, 534, 536, 538, 540, 542, 544, and 546 are presented based on the search/browse module 210 and are capable of being selected. Characteristics of the content listings such as tags, actors, directors, descriptions can be found within the content listings database 345. After selection of one of the content listings 532, 534, 536, 538, 540, 542, 544, and 546, the selection is presented in a central location where the selected content listing (e.g., 532) takes the place of the prior content listing (e.g., 532). The rest of the content listings 534, 536, 538, 540, 542, 544, and 546 are automatically updated with new content that is related to the newly selected content listing 532.

For example, if the content selection 532 is chosen, then the corresponding content is played. Further, if any of the content listings 533, 534, 536, and 538 are selected, then that particular content listing is placed in the position of the content listing 532. In this instance, the content listings 533, 534, 536, and 538 are updated based on directors or actors that are common with the newly selected content listing 532.

In one embodiment, each of the content listings 532, 534, 536, 538, 540, 542, 544, and 546 can selectively be highlighted to reflect that the content is available to the user. In one embodiment, each of the content listings 532, 534, 536, 538, 540, 542, 544, and 546 can be graphically presented to have the size of the graphic representation mirror the amount of content associated with each of the content listings 532, 534, 536, 538, 540, 542, 544, and 546.

FIG. 5C illustrates an exemplary screen shot 550 depicting a user interface for viewing content results through a client device 150. In one embodiment, the screen shot is an exemplary home screen configured to browse for content through the client device 150 and is transmitted from the platform server 120. The screen shot 550 includes representative content 552 and content status 555, 556, and 557 which describe the available options for a user to view the content 552 through the client device 150.

In one embodiment, the content status 555 represents a subscribed channel that offers the content associated with the content 552 as available now to the client device 150. For example, provider 557 and provider 558 are listed within the content status 555. In this example, the provider 557 is offering the content 552 now at no extra cost as part of the subscription to the provider 557. Further, the provider 558 is offering the content 552 now at an additional cost in addition to the subscription to the provider 557. The subscription to either provider 557 or 558 may be free or require payment. The details of the additional payment can be found in the detail column 559.

In one embodiment, the content status 556 represents a subscribed channel that offers the content associated with the content 552 as available soon to the client device 150. For example, provider 561 and provider 564 are listed within the content status 562. In this example, the provider 561 is offering the content 552 approximately 1 week from now at no extra cost as part of the subscription to the provider 561.

Further, the provider 564 is offering the content 552 in the future as the #2 position on a waitlist. Although not show, the detail column 559 for the provider 564 could also provide an estimated time when the content 552 will be available. The provider 564 contemplates a model where a user is subscribed to the provider 564 and the provider has a limited number of available copies of the content 552. After the available copies of the content 552 are checked out to other users, additional users wishing to get access to the content 552 are placed on a wait list until one of the available copies are released.

In one embodiment, an alert option is available in the details column 559 for the content status 556. In this example, an alert message is provided to the user through the client device, email, or text message when the content 552 becomes available.

In one embodiment, the content status 567 represents channels that are currently not subscribed by the user and offer the content associated with the content 552 as available now to the client device 150. For example, provider 568 and provider 569 are listed within the content status 567. In this example, the provider 568 is offering the content 552 as a single item purchase. Further, the provider 569 is offering the content 552 now as part of a subscription to the provider 569. The details of the additional payment can be found in the detail column 559.

In another embodiment, the content status 567 can also provide a suggestion for different content supplied by a sponsoring content provider. For example, the selection of the different content to be suggested is determined by the sponsoring content provider. The sponsoring content provider can pay a fee for this placement.

In one embodiment, the content listings 555, 556, and 567 and associated data are shown within the screen shot 550 in any combination. In another embodiment, the content providers 557, 558, 561, 564, 568, and 569 are shown in order of subscription within screen shot 550. For example, content providers that are subscribed to by the user's account are shown first. In another embodiment, the content providers 557, 558, 561, 564, 568, and 569 are shown in order of cost within screen shot 550. For example, content providers that are free or cheaper are shown first. In another embodiment, the content providers 557, 558, 561, 564, 568, and 569 are shown in order of paid placement within screen shot 550. For example, content providers that pay for placement are shown first. Any combination of subscription, cost, and paid placement may be utilized.

FIG. 5D illustrates an exemplary screen shot 580 depicting a user interface for viewing content results through a client device 150. In one embodiment, the screen shot is an exemplary home screen configured to browse for content through the client device 150 and is transmitted from the platform server 120. The screen shot 580 includes representative content 582, 584, 586, and 588; and content status 590 and 594; and content providers 591, 592, and 595. In one embodiment, the representative content 582, 584, 586, and 588, correspond with content such as videos, music, and applications. In one embodiment, the representative content 582, 584, 586, and 588 are provided by the platform server 120. In one instance, representative content 582, 584, 586, and 588 is based on searches for content. For example, the search for content may occur in a single search or over multiple searches spanning a period of time.

In one embodiment, the content status 590 presents a result where there is partial availability of the representative content 582, 584, 586, and 588. For example, the content provider 591 shows availability of the representative content 582, and the content provider 592 shows availability of the representative content 586. In one embodiment, the content status 594 presents a suggestion that content provider 595 can fulfill content associated with the representative content 582, 584, 586, and 588. In one embodiment, an alert option 596 allows the selection of receiving an alert when additional content becomes available through the content providers 591 and 592.

FIG. 6 illustrates an exemplary screen shot 600 depicting a user interface for viewing a pinned and updated search result through a client device 150. In one embodiment, the screen shot is an exemplary home screen configured to browse for content through the client device 150 and is transmitted from the platform server 120. The screen shot 600 includes representative content 602, 604, 606, 608, 610, 612, 614, 616, 618, and 620, which correspond with content such as videos, music, and applications. In one embodiment, the representative content 602, 604, 606, 608, 610, 612, 614, 616, 618, and 620 are provided by the platform server 120. In one instance, representative content 602, 604, 606, 608, 610, 612, 614, 616, 618, and 620 is based on a search for content related to “cars”. In this embodiment, the search for content is performed at different times with additional results each time the search is updated.

For example, the representative content 602, 604, 606, 608, 610, 612, 614, and 616 is displayed through a discovery timeline 625. A time period 631 is representative of a search result conducted on Jun. 12, 2010, and includes the representative content 602, 604, 606, and 608 as a result of the search. A time period 629 is representative of an updated search result conducted on Aug. 12, 2010, and includes the representative content 610 and 612 as a result of the updated search. A time period 627 is representative of an updated search result conducted on Oct. 12, 2010, and includes the representative content 614 and 616 as a result of the updated search.

In one embodiment, a subscribed content listing 635 displays subscribed and available content search results from the discovery timeline 625. In this instance, the subscribed content listing 635 includes the representative content 606, 608, 610, and 614.

In another embodiment, the subscribed content listing 635 may include promotional content that is available on a promotional basis. However, the user account is not subscribed to receive additional content from the content providers that are supplying the promotional content. For example, the promotional content would not normally be available to the user account from the content provider. Further, the offer to subscribe to the content provider can be made before, during, or after streaming the promotional content to the user account. In another embodiment, the promotional content may only be accessible for a segment of the content and an offer to purchase the entire content is made to the user account.

In one embodiment, an available content for purchase listing 640 displays content that is available for purchase from the discovery timeline 625. In this instance, the available content for purchase listing 640 includes the representative content 602, 604, 612, and 616. In one embodiment, an alert notification option 642 is provided to allow a user to be alerted if content within the available content for purchase listing 640 becomes a subscribed content for the user.

In one embodiment, a viewing window listing 650 organizes content based on when the content is available. For example, the viewing window listing can have an expiring soon category 652, an available now and going forward category 654, and a coming soon category 656. In this instance, the representative content 602, 604, 606, 608, 610, 612, 614, and 616 which are found in the discovery timeline 652 are shown in either the expiring soon category 652 or available now and going forward category 654. The representative content 618 and 620 are shown in the coming soon category 656 and have an alert option 658 to alert the user when the representative content 618 and 620 is available.

In one embodiment, a recommendation listing 660 is provided to recommend additional recommended topics based on the topic. In one embodiment, the recommended topic is made based on what other users who are also interested in the topic listed which in this case is “cars” would also have as additional topics. In this example with “cars” as the topic, additional topics such as motorcycles 662, airplanes 664, and buses 666 are also listed.

In another embodiment, the recommendation listing 660 allows a content provider to recommend content that is similar or related to the original “cars” search topic. In this embodiment, the content provider limits the recommendations based on the available content offered by this particular content provider. In one embodiment, the particular content provider is selected from a subscribed content provider associated with the user account. In another embodiment, the particular content provider is not a subscribed content provider nor related to the user account. In one example, the particular content provider pays an advertising fee to be selected and further pays a referral fee if the user account subscribes to the particular content provider.

FIG. 7A illustrates an exemplary screen shot 700 depicting a user interface for viewing additional data through a secondary screen on the input device 170. In one embodiment, the input device 170 includes a display screen which serves as the secondary screen. For example, a smart phone or portable tablet can be utilized as the input device 170. In one embodiment, the screen shot 700 on the secondary screen is an extension of the display 140.

In one embodiment, the screen shot 700 includes a representative content 705 and additional information relating to the representative content 705 such as directors 706, actors 708, description 710, rating/reviews 712, suggestions 714, user tags 716, global tags 718, friend tags 720, and share with friends 722. In one embodiment, the representative content 705 is content that is being watched, selected, or highlighted on the display 140 through the client device 150. For example, the additional information can be displayed on the secondary screen as depicted within the screen shot 700 as the representative content 705 is selected on the display 140. The additional information presented on the secondary display through the input device 170 provides further details of the representative content 705. The additional information including directors 706, actors 708, description 710, rating/reviews 712, suggestions 714, user tags 716, global tags 718, friend tags 720, and share with friends 722 is customizable to provide further details.

In one embodiment, the ratings/reviews 712 are generated from the user or provided by a third party. The suggestions 714 are offered to the user or can be selected to be suggestions from the user. The user tags 716 are tags that are generated by the user; global tags 718 are generated by other users and aggregated; and the friends tags 720 are tags that are from friends of the user. The share with friends 722 is content that is selected to be shared with friends of the user.

FIG. 7B illustrates an exemplary screen shot 730 depicting a user interface for viewing additional data through a secondary screen on the input device 170. In one embodiment, the input device 170 includes a display screen which serves as the secondary screen. For example, a smart phone or portable tablet can be utilized as the input device 170. In one embodiment, the screen shot 730 on the secondary screen is an extension of the display 140.

A timeline 735 represents a progress playing bar for content. The timeline 735 illustrates content progress as it is being played on the display 140. A progress indicator 740 shows a play location within the content such as a movie. For example, the beginning of the movie is towards the left side of the timeline 735. In one embodiment, the timeline 735 and progress indicator 740 correspond with the content being viewed on the display 140. Further, a second view is provided through the input device 170 which includes additional information on the content being viewed on the display 140.

In one embodiment, representative images 742, 744, 746, 748, 750, and 752, are shown with respect to a position on the timeline 735 and correspond with a visual representation of the content at that particular position within the content. In one embodiment, the display of the content through the display 140 can be set to a playtime associated with a position on the timeline 735. An information area 754 allows information regarding the content to be displayed that is temporally relevant to the position of the progress indicator 740. Further, a user tag legend 760, friend tag legend 762, and global tag legend 764 provide symbols for tags originating from the user, a friend, and aggregated global tags from multiple users, respectively. A tag representation 756 illustrates how tags can be graphically shown on the timeline 735. In one embodiment, the tag is correlated temporally with the content associated with the portion of the timeline 735. Further, a tag display 758 is configured to display text of a tag associated with the tag representation 756. In one embodiment, the tag display 758 selectively displays the text of a tag when the tag representation 756 is selected. In another embodiment, other tag representations can be selected with a corresponding tag display being activated to show the tag.

FIGS. 8A, 8B, 9, 10, 11, 12A, 12B, 13, 14, 15, and 16 illustrate flow diagrams showing exemplary embodiments for use with the streaming environment 110 and the platform server 120 as shown in FIG. 1. The blocks within the flow diagrams are shown only for illustrative purposes. For example, blocks within the flow diagram can be further divided, combined or performed in a different order without limiting the scope of the claims.

FIG. 8A illustrates a search for content among multiple content providers through a client device 150 or input device 170 while leveraging the platform server 120. In Block 805, a search request is detected. In one embodiment, the search request comes through the client device 150 and is related to a particular user subscription data 305. In another embodiment, the search request comes through the input device 170. The search request can be made for content such as software applications, movies, television shows, and music. In one embodiment, the search/browse module 210 accomplishes the search request.

In Block 810, the search request is matched with content listings. In one embodiment, the content listings are stored within the content listings data 345. In one embodiment, the match module 215 accomplishes the match.

If the match with the content listings returns a match with subscribed content in Block 815, then the subscribed content that matches the search results is displayed in Block 820. In one embodiment, the subscribed content includes qualifying content within subscribed channels through a content provider. For example in some instances, not all content provided by a content provider is included with a subscription to the content provider. The subscribed content includes movies, television programs, games, and music.

If the match with the content listings returns a match with purchased content in Block 825, then the purchased content that matches the search results is displayed in Block 830. In one embodiment, the purchased content includes movies, television programs, games, and music purchased by the user.

In one embodiment, the display module 230 accomplishes the display action in Blocks 820 and 830. In Block 835, a search is performed for similar content that is available to the user from subscribed content providers. In one embodiment, the similar content does not match the search request in the Block 805 but instead shares similar characteristics to the original search request and the matched subscribed and purchased content. Further, the similar content is intended as a suggestion or recommended content. For example, if the matched content either subscribed or purchased is related to the genre of action/adventure movies, then the similar content would also be within the action/adventure movies genre. In other instances, similar content can be related through common actors, directors, and time periods.

In another embodiment, the similar content can be suggested from a content provider that would require purchase or subscription to be viewed. In Block 840, the similar content is displayed. In one embodiment, subscribed content, purchased content, and similar content are displayed. In another embodiment, only the subscribed content and purchased content are displayed. In one embodiment, the recommendation module 235 would be utilized in Block 835 and 840 for searching and recommending content.

FIG. 8B illustrates a search for content among multiple content providers through a client device 150 or input device 170 while leveraging the platform server 120. In Block 845, multiple search requests are detected. In one embodiment, the multiple search requests come through the client device 150 and are related to a particular user account's subscription data 305. Further, the multiple search requests are stored within the user viewing data 310. In another embodiment, the multiple search requests come through the input device 170. The search requests can be made for content such as software applications, movies, television shows, and music. In one embodiment, the search/browse module 210 accomplishes the search request.

In Block 850, the search requests are matched with content listings. In one embodiment, the content listings are stored within the content listings data 345. In one embodiment, the match module 215 accomplishes the match.

If the match with the content listings returns a match of all search requests with available content in Block 855, then the available content that matches the search results are displayed in Block 860. In one embodiment, the available content includes content that can be accessed through a content provider without additional charges. For example in some instances, the available content could be available through a specific purchase, available through a subscription, or available because the content is free. The available content includes movies, television programs, games, and music.

If all the search requests are not matched with available content in Block 855, then a partial match is explored in Block 865. If the match with the content listings returns a partial match of all search requests with available content in Block 865, then the available content that matches the search results are displayed in Block 870.

If all the search requests are not matched with available content in Block 855, then a match with content for purchase is explored in Block 875. If the match for content outside of available content returns a match for remaining content for purchase in Block 875, then the content for purchase is displayed in Block 880. In one embodiment, the display module 230 accomplishes the display function in Block 860, 870, and 880.

If there is content from the multiple search requests that is not included as available content or content for purchase within Block 885, then an alert is set in Block 890 to notify the account holder when the content becomes available for purchase or is included as available content to the account holder. In one embodiment, the alert can be an email, sms, or voicemail notification through the client device 150 or the input device 170.

FIG. 9 illustrates a persistent search for content among multiple content providers through a client device 150 or input device 170 while leveraging the platform server 120. In Block 905, a search request is detected and stored. In one embodiment, the search request comes through the client device 150 and is related to a particular user subscription data 305. In another embodiment, the search request comes through the input device 170. The search request can be made for content such as software applications, movies, television shows, and music. Further, the search request is stored within the user viewing data 310. In one embodiment, the store module 230 accomplishes the storing function.

In Block 910, an initial search is performed based on the search request and the resulting content based on the initial search is stored. Searching for content can utilize the user tagging data 320, public tagging data 340, and/or content listings data 345. In one embodiment, the content listings are stored within the content listings data 345.

In Block 915, an updated search is performed based on the search request which mirrors the initial search in Block 910. The updated search can be performed at any time after the initial search. Further, the resulting content based on the updated search is stored. In one embodiment, the resulting content based on the updated search encompasses additional content beyond the resulting content from the initial search.

If there is available content detected in Block 920, then the available content is highlighted in Block 925. In one embodiment, available content includes content that is subscribed to, purchased by, and offered for free to the account holder associated with the client device 150 or the input device 170.

In Block 930, the resulting content from the initial search and the updated search are displayed together based on the timing of the initial search and the updated search. Further, the differentiation between available content and content for purchase is also displayed in one embodiment. An exemplary display is shown in the discovery timeline 625 in FIG. 6.

In Block 930, the resulting content from the initial search and the updated search are displayed together based on a viewing window of the resulting content. An exemplary display is shown in the viewing window 680 in FIG. 6.

FIG. 10 illustrates an interactive, dynamic browsing of content through a client device 150 or input device 170 while leveraging the platform server 120. In Block 1005, available content associated with the client device 150 is identified and central content is selected. In one embodiment, available content includes content available to the client device 150 because the content has already been purchased, is included as part of a subscription which the client device 150 can access, or available because the content is offered for free. In another embodiment, available content also includes content that can be purchased or subscribed to through the client device 150 for additional payment.

In one embodiment, the selection as the central content is based on prior content watched through the user viewing data 310, user subscription data 315, user tagging data 320, public viewing data 335, and/or public tagging data 340.

In Block 1010, the central content is displayed. In one embodiment, the content listing 532 (shown in FIG. 5B) is exemplary central content. In one embodiment, the display module 230 accomplishes the display function.

In Block 1015, surrounding content is selected from the available content. In one embodiment, content listings 534, 536, 538, 540, 542, 544, and 546 (shown in FIG. 5B) are exemplary surrounding content. Selection of the surrounding content is from the available content. In one embodiment, criteria for selection of the surrounding content includes similarity and differences between genre, artists, actors, directors, and sequels relative to the central content. In one embodiment, selecting the surrounding content is accomplished through the search/browse module 210.

In Block 1020, selection of the central content and surrounding content is monitored. If the surrounding content is selected, then the selection is recorded in Block 1025. The selected surrounding content is made the new central content in Block 1030. In Block 1015, the surrounding content is selected based on new central content and additional information gained through the selection that is recorded within the Block 1025. For example, if the original central content was a horror movie and the surrounding content that was selected was a documentary program, the new surrounding content would not be within the horror movie genre. In one embodiment, the store module 230 accomplishes the recording function.

If the central content is selected in Block 1020, then the central content is launched in Block 1035. If access to the central content requires payment, an offer to purchase, rent or subscribe to receive the central content is offered through the interface.

FIG. 11 illustrates dynamic prioritization of content through interactive browsing of content through a client device 150 or input device 170 while leveraging the platform server 120. In Block 1105, available content for display on the client device 150 is identified. In one embodiment, the available content includes content available to the client device 150 because the content has already been purchased, is included as part of a subscription which the client device 150 can access, or is available because the content is offered for free. In another embodiment, the available content also includes content that can be purchased or subscribed to through the client device 150 for additional payment.

In another embodiment, content through a sponsored content provider is also included whether or not the client device 150 is subscribed to a channel associated with the sponsored content provider. In one embodiment, the match module 215 within the platform module 130 identifies the content. In this example, the content is stored at the content source 135 with the details and listing information of the content stored within the content listing data 345 within the platform database 125.

In Block 1110, the content is organized within categories and displayed within the category listings. In one embodiment, the category listing is created based on the subject matter of the content. For example, the additional details and listing information of the content is found within the content listing data 345 and public tagging data 340 to provide subject matter information about the content.

In another embodiment, the categories are preset and the content is sorted into the preset categories. For example, preset category listings can include “comedy”, “mystery”, “sports”, and the like. Further, the preset category listing can also include a listing of a specific content provider where the content displayed under the specific content provider as a preset category is sourced from the specific content provider.

FIG. 5A illustrates an exemplary manner in which categories and their associated content are displayed. In Block 1115, browsing of the content within categories is detected. In one embodiment, browsing is performed by highlighting or hovering over content as information about the content such as descriptions, cover art, and video clips are displayed. In another embodiment, browsing is performed by specifically selecting the content to view additional information about the content. Further examples of highlighting and hover are shown as the selection frame 525 in FIG. 5A. Further, additional information is shown in the information box 526 and corresponding information 527 in FIG. 5A. In one embodiment, the search/browse module 210 within the platform module 130 detects and selects categories based on browsing.

In Block 1120, the browsing activity is recorded. In one embodiment, the browsing activity is recorded within the user viewing data 310. In one embodiment, the store module 220 accomplishes recording of the browsing activity.

In Block 1125, the categories are prioritized. In one embodiment, the prioritization is based on the browsing activity. For example, unpopular categories that include content which is not browsed or viewed are moved towards the bottom of the screen. For example referring to FIG. 5A, if content within the category 502 are not viewed or browsed, then the category 502 and the associated content is moved below the category 512.

In another embodiment, unpopular categories and their associated content are removed and no longer displayed.

In another embodiment, the prioritization is based on current subscription associated with the client device 150. For example, the category listings are ordered based on whether the content within the category listing is subscribed or available content to the client device 150. The category listings with the most subscribed or available content are positioned at the top of the listings.

In another embodiment, the prioritization of the category listings is based on preferred placement of a content provider. For example, a preferred content provider can be placed as a category listing where the content associated with this category listing is content originating from the content provider. In this example, the preferred content provider assigns the content listings to be displayed under the respective category listing. In one embodiment, the preferred content provider is currently subscribed to by the client device 150 and provides available content to the client device 150. In another embodiment, the preferred content provider is not currently subscribed to by the client device 150 and is capable of presenting content as a promotion to the client device 150. Although the content listings are described as being associated with categories, channels can be utilized in place of content listings and also be associated with corresponding categories.

FIG. 12A illustrates a process of tagging content through a client device 150 or input device 170 while leveraging the platform server 120. In Block 1210, content is being played. In one embodiment, the content is being played through the client device 150. In another embodiment, the content is being played through the input device 170. The content can include movies, television shows, music, and games.

In Block 1215, a tag request is detected. In one embodiment, the tag request is detected in response to the content being played in the Block 1210. In one example, as the content is being viewed through the client device 150, the tag request can be detected by the input device 170. In this instance, the tag request is related to the portion of content being viewed through the client device.

If the tag request is received in Block 1220, then the segment of the content associated with the tag request is identified in Block 1225. In one embodiment, the content is divided among multiple segments. In one example, if the content is a movie, the movie is divided into 10 second segments. In another example, the movie is divided into variable length segments based on the length of each scene within the movie. In one embodiment, the segments are provided by the content creator such as the television show producer. In one embodiment, the segments for the content are stored within the content listing data 345.

In Block 1230, tag suggestions are displayed based on the segment. In one embodiment, tag suggestions are found by the tags stored within the public tagging data 340 that correspond with the particular segment. The public tagging data 340 can include tags selected by other users; tags selected by content providers; and tags found in closed captioning or subtitled text. The frequency and source of the tags within the public tagging data 340 can determine which tags are suggested. In one embodiment, tags provided by content providers or within subtitles or closed captioning are given additional weight when compared to tags from other users. In one embodiment, a drop down menu is provided with the tag suggestions so that tag selection can be performed through a simplified on-screen interface and selection control is through the use of the input device 170. In another embodiment, voice control can be used to select the tag for the segment.

In another embodiment, the user can begin entering a tag with letters and dynamically suggest a complete tag based on the initial letters and tags from other users, content providers, subtitles, and closed captioning. If the user enters a tag that is new, then this new tag can be included within the corpus of tags found within the public tagging data 340.

In Block 1235, the selected tag is recorded. In one embodiment, the selected tag is stored within the user tagging data 320 which is reserved for access by the account holder. The selected tag can also be stored within the public tagging data 340 in aggregate which would not identify the account holder. In both cases, the tag would be correlated with the segment associated with the specific content.

In another embodiment, a tag that is recorded within the user tagging data 320 can be utilized to search for additional content with the same or similar tags. For example, if a particular tag is being tagged with some frequency or popularity within the user tagging data 320, then this particular tag is searched in additional content. When a match is made between the additional content and the particular tag, then this different content is tagged with the particular tag. The additional content can be already tagged by the content provider or closed captioned or subtitle data can be utilized.

FIG. 12B illustrates a process of searching for tagged content through a client device 150 or input device 170 while leveraging the platform server 120. In Block 1240, a tag search request is detected. In one embodiment, a search term for a tag is detected.

In Block 1245, the tag search request is directed towards either a public tag search or a private tag search. In a public tag search, the content being matched with the search for the public tag search include content that was not viewed by the account holder. For example, the public tags being searched could be tagged by anyone whether or not the account holder viewed and/or tagged the content. In a private tag search, the content being matched with the search for the private tag includes content that was tagged by the account holder. In some instances, the content tagged by the account holder was also viewed by the account holder.

If the search is for public tags, then the public tags are identified in Block 1250. In one embodiment, the public tags are found in the public tagging data 340. In Block 1255, the search request is matched with the identified public tags as found in Block 1250. In Block 1260, the segments within content related to the matched public tags are displayed.

If the search is for private tags, then the private tags are identified in Block 1265. In one embodiment, the private tags are found in the user tagging data 320. In Block 1270, the search request is matched with the identified private tags as found in Block 1265. In Block 1275, the segments within content related to the matched private tags are displayed.

In another embodiment, a search request is detected for a particular term. All content available to the user account is searched for public and private tags associated with the particular term. Once the selected content is identified, the content is ranked and prioritized based on popularity. For example if one content is watched more often or tagged more often than other content, then the more watched and tagged content is considered more popular.

In another embodiment, the search request can include product names or detailed topic such as “Dodge Charger” and “race cars”. In this example, content having tags with “Dodge Charger” or “race cars” would be identified. The content may include movies with segments that qualify or may be advertisements from manufacturers.

FIG. 13 illustrates content display on a secondary display device through a client device 150 or input device 170 while leveraging the platform server 120. In Block 1310, content is displayed on a primary display. The primary display includes a display device 140 within FIG. 1. In one embodiment, the content displayed within the primary display is a listing of content such as the screen shots 500, 530, 550, and 580 within FIGS. 5A, 5B, 5C, and 5D, respectively. In another embodiment, the content displayed within the primary display is content such as a movie, television show, music display, or gaming application.

In Block 1315, a selection is detected. In one embodiment, the selection is performed through the input device 170. The selection can include highlighting, hovering, or selecting available content shown on the primary display.

If a selection is detected in the Block 1320, then an augmented view is displayed with additional content on the secondary display. In one embodiment, the secondary display is a mobile device such as a smart phone, a tablet computer, and a portable computer. In another embodiment, the secondary display is a visual display on the input device 170. The augmented view can include further additional details of the selected content such as descriptions, actors, directors, ratings, reviews, tags, and timelines of content. Examples of the augmented view are shown as screen shots 700 and 730 within FIGS. 7A and 7B, respectively.

In Block 1330, input associated with the content on the secondary display is detected. In one embodiment, the input includes selecting items shown on the secondary display. In Block 1335, the content displayed on the primary display is modified based on the input from the Block 1330. For example while a movie is being played on the primary display in Blocks 1310 and 1315, additional information about the movie such as a related movie is displayed on the secondary display in Block 1325. If the related movie is selected based on the display through the secondary display in Block 133, then the related movie will be displayed on the primary display in Block 1335.

In one embodiment, content such as a movie or television show is being displayed on the primary display. Based on the subject matter of the content, targeted advertising is displayed on the secondary display, and the secondary display is capable of interacting independently with the targeted advertising from the primary display. For example, a user of the secondary display can purchase the product/service being offered through the secondary display while the content continues to play on the primary display. In one embodiment, the subject matter of a segment of the content being displayed on the primary displayed can be detected through the use of tags associated with that particular segment.

In another embodiment, a game such as a card game can be played while using the primary and secondary displays. For example, the score and any publicly available information (e.g., discarded cards) is displayed on the primary display which is shared among all the players. Each of the players also has a secondary display such as a smart phone where private information such as their card hand is only viewable by that particular player. As the particular player modifies their respective secondary display by discarding a card, the primary display is modified and shows the discarded card.

FIG. 14 illustrates adding content to a playlist through a client device 150 or input device 170 while leveraging the platform server 120. In Block 1405, content is detected by the platform server 120. In one embodiment, the platform server 120 is configured to receive input that corresponds to content. For example, an image captured by a camera associated with the input device 170 represents content and is transmitted to the platform server 120 via an email message. In this example, the captured image may include a movie poster, an actor, and a director which represents the content. The captured image may also be a bar code which represents the content. In another embodiment, a title of the content can also be sent to the platform server 120 via an email message. In yet another embodiment, the actors or director associated with the content can also be sent to the platform server 120 via an email message.

In another embodiment, content browsed through a website can also be sent to the platform server 120. For example, the web page can include an interface through an API (application protocol interface) which allows the user who is viewing the web page to select an icon thus capturing this content to be received by the platform server 120. By selecting the icon, the content displayed on the web page is sent to the platform server 120.

In Block 1410, availability of the content detected in Block 1405 is determined. In one embodiment, there are different states of availability for the content. Exemplary states of availability include free content, free content through a subscription, content available for purchase, content available soon, and content not available.

In Block 1415, the content is placed within a playlist. In one embodiment, the playlist includes one or more selected content. In one embodiment, the playlist is associated with a particular user account and is stored within the user viewing data 314.

In Block 1420, the availability of the content within the playlist is checked. In one embodiment, the availability is dependent on the subscriptions of the particular user account. In one embodiment, the availability is determined through the user subscription data 315 within the platform database 125.

In Block 1425, the playlist is presented. In one embodiment, the playlist is presented through the client device 150. In one embodiment, the content within the playlist and the corresponding availability of each content will also be displayed. An exemplary display is shown in screenshots in FIGS. 5C, 5D, and 6.

In use, a user associated with a user account can identify content of interest and have this content sent to a playlist for later viewing on their client device 170. The user can identify the content of interest by browsing the Internet, capturing images related to content, and emailing titles of content. Further, the playlist can be optimized through the recommendation module 235 where the user subscription data 315 is utilized to provide optimal content providers for providing the content listed within the playlist.

FIG. 15 illustrates sharing content among friends through a client device 150 or input device 170 while leveraging the platform server 120. In Block 1510, a list of friends is displayed. In one embodiment, the list of friends is stored within the user connection data 325 within the platform database 125. In one embodiment, the user connection data 325 includes contacts or friends associated with the particular user account.

In Block 1515, a selection from the list of friends is made for sharing content. In Block 1520, content is detected for sharing with the selection in the Block 1515. In one embodiment, the content is detected through searching and browsing through the client device 170. In another embodiment, the content can be found within the playlist as described within FIG. 14, the content shown within FIGS. 5A, 5B, 5C, 5D, and 6.

In Block 1525, a check is performed to confirm that sharing with the selected friends from the Block 1515. If confirmation is received, then a message is transmitted to the selected friend within Block 1530. In one embodiment, the message allows the selected friend to access the detected and shared content from the Block 1520. In one embodiment, the shared content is checked for availability for the recipient (selected friend). For example, the subscriptions associated with the recipient are utilized to determine availability of the content. In one embodiment, the subscription information for the recipient is stored within the user subscription data 315.

In one instance, the shared content is available for free to the recipient because the recipient is already subscribed to a content provider that can provide the shared content. In another instance, the shared content is available to the recipient for a fee. In yet another embodiment, the originator or user account that is sharing the shared content with the recipient is notified if the recipient cannot access the shared content without paying a fee. In this instance, the originator or user account that is sharing the shared content is able to purchase the shared content for the recipient. This way, the recipient can have access to the shared content without incurring additional fees or undertaking any other actions to purchase or rent the shared content. In one embodiment, the originator can earn referral credits if the recipient should subscribe to the content provider.

FIG. 16 illustrates dynamically preloading channels on the client device 150 in anticipation of launching content associated with the preloaded channels. In one embodiment, preloading channels is coordinated through the platform server 120.

In Block 1600, the client device 150 is detected. In one embodiment, the capabilities of the client device 150 are discovered through the platform server 120. For example, the authentication module 205 within the platform module 130 in conjunction with the user device data 330 within the platform database 125 are capable of discovering the capabilities of the client device 150 by identifying the model number and base memory configuration of the client device 150. In another embodiment, the processing capability and the memory capacity of the client device 150 can by dynamically tested through the platform server 120.

In Block 1605, the application capacity is determined. In one embodiment, the maximum number of applications that can effectively run on the client device 150 is determined. In one embodiment, the applications are channels that are running on the client device 150. A channel is a specialized application that allows content corresponding to the channel to be streamed through the client device 150. Up to the maximum number of applications or channels are capable of running on the client device 150 without substantial degradation in performance.

If the channels are selected based on global popularity in Block 1610, then the top channels based on global popularity are selected in Block 1615. In one embodiment, global popularity is determined through the public viewing data 335. For example, the most watched channels in terms of number of viewers or duration of viewing can be gathered from the public viewing data 335. These top channels are selected and up to the maximum number of channels as determined within the Block 1605 are preloaded onto the client device 150 and run in the background prior to being utilized.

If the channels are selected based on prior use in Block 1620, then the top channels based on prior use by the client device 150 are selected in Block 1625. In one embodiment, the prior use is determined through the user viewing data 310. For example, the most watched channels in terms of number of views or duration of viewing can be gathered from the user viewing data 310. These top channels are selected and up to the maximum number of channels as determined within the Block 1605 are preloaded onto the client device 150 and run in the background prior to being utilized.

If the channels are selected based on subscriptions in Block 1630, then the top channels based on subscription by the client device 150 are selected in Block 1625. In one embodiment, the subscription is determined through the user subscription data 315. For example, the subscription to channels associated with the user account is stored within the user subscription data 315. The subscribed channels are selected and up to the maximum number of channels as determined within the Block 1605 are preloaded onto the client device 150 and run in the background prior to being utilized. In another embodiment, a sponsored channel can also be included even though the user account associated with the client device 150 is not subscribed to this channel. In one embodiment, the sponsored channel is a paid placement.

If the channels are selected based on dynamic browsing information in Block 1640, then the top channels based on the proximity of browsing by the client device 150 are selected in Blocks 1645 and 1650. In Block 1645, the current location of browsing through the client device 150 is detected. For example, the highlighted content 520 within FIG. 5A illustrates content being highlighted in response to browsing from the client device 150.

In one embodiment, the channels associated with content near the highlighted content are ranked and prioritized based on their location to the highlighted content in Block 1650. Based on the ranked and prioritized channels and maximum number of channels as determined within the Block 1605, channels are preloaded onto the client device 150 and run in the background prior to being utilized. The channels can be re-ranked and re-prioritized based on a different location of browsing being detected within the Block 1645.

In use, the preloaded channels run in the background on the client device 150 prior to content being streamed through one of the preloaded channels. In one embodiment, preloading the channels on the client device 150 reduces the lag associated with streaming content through one of the preloaded channels

FIG. 17 illustrates content augmentation operations performed in accordance with an embodiment of the invention. In Block 1705, content is displayed on a primary display. The primary display may be display device 140 or FIG. 1. In one embodiment, the content displayed on the primary display is a video stream such as a movie or television show.

In Block 1710, a request for information is detected. In one embodiment, the request is performed through the input device 170. In another embodiment, the input device 170 is also the secondary display device such as a tablet or Smartphone. In one embodiment, the use of a “replay” function that is configured to replay content streaming on the primary display device also initiates the request for information in the Block 1710. In another embodiment, a dedicated button to request additional information can be presented on the input device 170.

In Block 1715, the portion of the content displayed on the primary display device that corresponds to the request for information detected within the Block 1710 is identified. For example, the actors or items shown within the primary display device at the time of the request would be identified. In one embodiment, the duration prior to the detection of the request for information could extend for 3 seconds. In other embodiments, the duration could be longer or shorter.

In Block 1720, different choices are presented through the secondary display device depending on the portion identified within the Block 1715. For example if the portion identified within the Block 1715 includes an actor, a car and a boat, then the choices of the actor, the car and the boat are presented on the secondary display as selection choices.

In Block 1725, a selection from the secondary display device is detected. In one embodiment, the selection is received from the secondary display device. If the selection is detected, then an action is performed in response to the selection 1730. For example, if the selection includes the actor, then information about the actor is transmitted to the secondary display device.

In Block 1735, content continues to play on the primary display device. In one embodiment, information continues to be transmitted directly to the secondary display device while the content continues to be displayed on the primary display device.

In one embodiment, the streaming content continues playing on the primary display device in Block 1705 even while the request for information is received in Block 1710. In this embodiment, the streaming content continues to play while information is discovered on the secondary display device.

In another embodiment, the streaming content displayed on the primary display device in Block 1705 is paused until Block 1735 when the streaming content resumes being displayed on the primary display device.

An embodiment of the present invention relates to a computer storage product with a computer readable storage medium having computer code thereon for performing various computer-implemented operations. The media and computer code may be those specially designed and constructed for the purposes of the present invention, or they may be of the kind well known and available to those having skill in the computer software arts. Examples of computer-readable media include, but are not limited to: magnetic media such as hard disks, floppy disks, and magnetic tape; optical media such as CD-ROMs, DVDs and holographic devices; magneto-optical media; and hardware devices that are specially configured to store and execute program code, such as application-specific integrated circuits (“ASICs”), programmable logic devices (“PLDs”) and ROM and RAM devices. Examples of computer code include machine code, such as produced by a compiler, and files containing higher-level code that are executed by a computer using an interpreter. For example, an embodiment of the invention may be implemented using JAVA®, C++, or other object-oriented programming language and development tools. Another embodiment of the invention may be implemented in hardwired circuitry in place of, or in combination with, machine-executable software instructions.

The foregoing description, for purposes of explanation, used specific nomenclature to provide a thorough understanding of the invention. However, it will be apparent to one skilled in the art that specific details are not required in order to practice the invention. Thus, the foregoing descriptions of specific embodiments of the invention are presented for purposes of illustration and description. They are not intended to be exhaustive or to limit the invention to the precise forms disclosed; obviously, many modifications and variations are possible in view of the above teachings. The embodiments were chosen and described in order to best explain the principles of the invention and its practical applications, they thereby enable others skilled in the art to best utilize the invention and various embodiments with various modifications as are suited to the particular use contemplated. It is intended that the following claims and their equivalents define the scope of the invention. 

What is claimed is:
 1. A method, comprising: supplying a video stream to a primary display device; receiving an information request, wherein the information request solicits information associated with content of the video stream on the primary display device; and in response to receiving the information request, supplying to a secondary display device a plurality of tag data relating to the video stream, wherein the tag data comprises a plurality of different tag sources and different tag types, tag timestamps, and tag content data, wherein the plurality of tag data are visually and concurrently indicated on a single progress bar of the video stream being displayed on the secondary display device, and whereby the tag content data is displayed on the display screen of the secondary display device when one of the plurality of tag types is selected.
 2. The method of claim 1, wherein the tag content data is displayed as an overlay on the display screen of the secondary display device.
 3. The method of claim 1, wherein the tag type comprises one of a user tag, a friend tag, and a global tag.
 4. The method of claim 3, wherein the user tag is a tag generated by a user of the primary or secondary display device.
 5. The method of claim 3, wherein the global tag is an aggregation of tags generated by other users.
 6. The method of claim 1, wherein the tag timestamp comprises location information of the at least one tag information on the progress bar of the video stream.
 7. The method of claim 3, wherein each of the tag types is visually distinguished from each other on the progress bar of the video stream.
 8. A method for interacting with a video stream presented on a main display device, the method comprising: requesting an information related to the video stream presented on the main display using a secondary display device; receiving, at the secondary display device, a plurality of tag information relating to the video stream, wherein each of the plurality of tag information comprises a plurality of tag types, a plurality of tag sources, a plurality of tag timestamps, and a tag content data; and concurrently displaying the plurality of tag information on a single progress bar representing a length of a content of the video stream, wherein a location on the progress bar of each of the plurality of tag information is based on the tag timestamp of each of the plurality of tag information.
 9. The method of claim 8, further comprising: receiving a user selection of a tag information from the plurality of tag information; and displaying the tag content data of the selected tag information from the plurality of tag information.
 10. The method of claim 9, wherein the tag content data is displayed as an overlay on the display screen of the secondary display device.
 11. The method of claim 8, wherein the tag type comprises one of a user tag, a friend tag, and a global tag.
 12. The method of claim 11, wherein the user tag is a tag generated by a user of the primary or secondary display device.
 13. The method of claim 11, wherein the global tag is an aggregation of tags generated by other users.
 14. The method of claim 8, wherein each of the plurality of tag information is visually distinguished on the progress bar of the second display screen based on the tag type of each of the plurality of tag information.
 15. A non-transitory processor-readable medium having one or more instructions operational on a client device, which when executed by a processor causes the processor to: supply a video stream to a primary display device; and receive an information request, wherein the information request solicits information associated with content of the video stream on the primary display device; and in response to the information request, supply to a secondary display device a plurality of tag sources and tag types, wherein the plurality of tag sources and types are visually and concurrently indicated on a single progress bar of the video stream being displayed on the secondary display device.
 16. The non-transitory processor-readable medium of claim 15, further comprises displaying a tag content data on the progress bar when one of the plurality of tag type or source is selected, wherein the tag content data is displayed as an overlay on the display screen of the secondary display device.
 17. The non-transitory processor-readable medium of claim 15, wherein the tag type comprises one of a user tag, a friend tag, and a global tag.
 18. The non-transitory processor-readable medium of claim 17, wherein the user tag is a tag generated by a user of the primary or secondary display device.
 19. The non-transitory processor-readable medium of claim 17, wherein the global tag is an aggregation of tags generated by other users.
 20. The non-transitory processor-readable medium of claim 15, wherein each of the plurality of tag information is visually distinguished on the progress bar of the second display screen based on the tag type of each of the plurality of tag information. 